#ifndef MAPAPARSER_H_
#define MAPAPARSER_H_

#include "Mapa.h"
#include <stdlib.h>
#include <libxml++/libxml++.h>
#include <glibmm/convert.h>
#include "Territorio.h"
#include "Continente.h"
using namespace std;

/**
 * Un MapaParser se encarga de, a partir del un xml, generar la estructura del mapa en memoria.
 * @see ../doc/mapa.xml
 */

class MapaParser : public xmlpp::SaxParser
{	
public:
	MapaParser(Mapa* unMapa);
	Mapa* obtenerMapa();
	bool isParseoFinalizado();
	bool isParseoCorrecto();
	string getPathImagen();
	virtual ~MapaParser();
private:
	Mapa* mapaDelJuego;
	string continente,pais;
	string path;
	bool parseoFinalizado;
	bool parseoCorrecto;
protected:

	virtual void on_start_element(const Glib::ustring& name,
                                const AttributeList& properties);
	void on_end_element(const Glib::ustring& name);
	void on_error(const Glib::ustring& name);
	void cargarCartaConquista(const AttributeList& properties);
	void cargarCartaEliminacion(const AttributeList& properties);
	void cargaContinente(const AttributeList& properties);
	void cargaPais(const AttributeList& properties);
	void cargaConeccion(const AttributeList& properties);
	void setearPathImagen(const AttributeList& properties);
};


#endif /*MAPAPARSER_H_*/
